home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol146 / xlftab1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-12-16  |  4.3 KB  |  138 lines

  1. /* xlftab1.c - xlisp function table - part 1 */
  2. /*    Copyright (c) 1985, by David Michael Betz
  3.     All Rights Reserved
  4.     Permission is granted for unrestricted non-commercial use    */
  5.  
  6. #include "xlisp.h"
  7.  
  8. /* external functions */
  9. extern NODE
  10.     *xeval(),*xapply(),*xfuncall(),*xquote(),*xfunction(),*xbquote(),
  11.     *xset(),*xsetq(),*xsetf(),*xdefun(),*xdefmacro(),
  12.     *xgensym(),*xmakesymbol(),*xintern(),
  13.     *xsymname(),*xsymvalue(),*xsymplist(),*xget(),*xputprop(),*xremprop(),
  14.     *xcar(),*xcaar(),*xcadr(),*xcdr(),*xcdar(),*xcddr(),
  15.     *xcons(),*xlist(),*xappend(),*xreverse(),*xlast(),*xnth(),*xnthcdr(),
  16.     *xmember(),*xassoc(),*xsubst(),*xsublis(),*xremove(),*xlength(),
  17.     *xmapc(),*xmapcar(),*xmapl(),*xmaplist(),
  18.     *xrplca(),*xrplcd(),*xnconc(),*xdelete(),
  19.     *xatom(),*xsymbolp(),*xnumberp(),*xboundp(),*xnull(),*xlistp(),*xconsp(),
  20.     *xeq(),*xeql(),*xequal(),
  21.     *xcond(),*xand(),*xor(),*xlet(),*xletstar(),*xif(),
  22.     *xprog(),*xprogstar(),*xprog1(),*xprog2(),*xprogn(),*xgo(),*xreturn(),
  23.     *xcatch(),*xthrow(),
  24.     *xerror(),*xcerror(),*xbreak(),*xcleanup(),*xcontinue(),*xerrset(),
  25.     *xbaktrace(),*xevalhook(),
  26.     *xdo(),*xdostar(),*xdolist(),*xdotimes(),
  27.     *xminusp(),*xzerop(),*xplusp(),*xevenp(),*xoddp();
  28.  
  29. /* the function table */
  30. struct fdef ftab1[] = {
  31.  
  32.     /* evaluator functions */
  33. {    "EVAL",        SUBR,    xeval        },
  34. {    "APPLY",    SUBR,    xapply        },
  35. {    "FUNCALL",    SUBR,    xfuncall    },
  36. {    "QUOTE",    FSUBR,    xquote        },
  37. {    "FUNCTION",    FSUBR,    xfunction    },
  38. {    "BACKQUOTE",    FSUBR,    xbquote        },
  39.  
  40.     /* symbol functions */
  41. {    "SET",        SUBR,    xset        },
  42. {    "SETQ",        FSUBR,    xsetq        },
  43. {    "SETF",        FSUBR,    xsetf        },
  44. {    "DEFUN",    FSUBR,    xdefun        },
  45. {    "DEFMACRO",    FSUBR,    xdefmacro    },
  46. {    "GENSYM",    SUBR,    xgensym        },
  47. {    "MAKE-SYMBOL",    SUBR,    xmakesymbol    },
  48. {    "INTERN",    SUBR,    xintern        },
  49. {    "SYMBOL-NAME",    SUBR,    xsymname    },
  50. {    "SYMBOL-VALUE",    SUBR,    xsymvalue    },
  51. {    "SYMBOL-PLIST",    SUBR,    xsymplist    },
  52. {    "GET",        SUBR,    xget        },
  53. {    "PUTPROP",    SUBR,    xputprop    },
  54. {    "REMPROP",    SUBR,    xremprop    },
  55.  
  56.     /* list functions */
  57. {    "CAR",        SUBR,    xcar        },
  58. {    "CAAR",        SUBR,    xcaar        },
  59. {    "CADR",        SUBR,    xcadr        },
  60. {    "CDR",        SUBR,    xcdr        },
  61. {    "CDAR",        SUBR,    xcdar        },
  62. {    "CDDR",        SUBR,    xcddr        },
  63. {    "CONS",        SUBR,    xcons        },
  64. {    "LIST",        SUBR,    xlist        },
  65. {    "APPEND",    SUBR,    xappend        },
  66. {    "REVERSE",    SUBR,    xreverse    },
  67. {    "LAST",        SUBR,    xlast        },
  68. {    "NTH",        SUBR,    xnth        },
  69. {    "NTHCDR",    SUBR,    xnthcdr        },
  70. {    "MEMBER",    SUBR,    xmember        },
  71. {    "ASSOC",    SUBR,    xassoc        },
  72. {    "SUBST",    SUBR,    xsubst        },
  73. {    "SUBLIS",    SUBR,    xsublis        },
  74. {    "REMOVE",    SUBR,    xremove        },
  75. {    "LENGTH",    SUBR,    xlength        },
  76. {    "MAPC",        SUBR,    xmapc        },
  77. {    "MAPCAR",    SUBR,    xmapcar        },
  78. {    "MAPL",        SUBR,    xmapl        },
  79. {    "MAPLIST",    SUBR,    xmaplist    },
  80.  
  81.     /* destructive list functions */
  82. {    "RPLACA",    SUBR,    xrplca        },
  83. {    "RPLACD",    SUBR,    xrplcd        },
  84. {    "NCONC",    SUBR,    xnconc        },
  85. {    "DELETE",    SUBR,    xdelete        },
  86.  
  87.     /* predicate functions */
  88. {    "ATOM",        SUBR,    xatom        },
  89. {    "SYMBOLP",    SUBR,    xsymbolp    },
  90. {    "NUMBERP",    SUBR,    xnumberp    },
  91. {    "BOUNDP",    SUBR,    xboundp        },
  92. {    "NULL",        SUBR,    xnull        },
  93. {    "NOT",        SUBR,    xnull        },
  94. {    "LISTP",    SUBR,    xlistp        },
  95. {    "CONSP",    SUBR,    xconsp        },
  96. {    "MINUSP",    SUBR,    xminusp        },
  97. {    "ZEROP",    SUBR,    xzerop        },
  98. {    "PLUSP",    SUBR,    xplusp        },
  99. {    "EVENP",    SUBR,    xevenp        },
  100. {    "ODDP",        SUBR,    xoddp        },
  101. {    "EQ",        SUBR,    xeq        },
  102. {    "EQL",        SUBR,    xeql        },
  103. {    "EQUAL",    SUBR,    xequal        },
  104.  
  105.     /* control functions */
  106. {    "COND",        FSUBR,    xcond        },
  107. {    "AND",        FSUBR,    xand        },
  108. {    "OR",        FSUBR,    xor        },
  109. {    "LET",        FSUBR,    xlet        },
  110. {    "LET*",        FSUBR,    xletstar    },
  111. {    "IF",        FSUBR,    xif        },
  112. {    "PROG",        FSUBR,    xprog        },
  113. {    "PROG*",    FSUBR,    xprogstar    },
  114. {    "PROG1",    FSUBR,    xprog1        },
  115. {    "PROG2",    FSUBR,    xprog2        },
  116. {    "PROGN",    FSUBR,    xprogn        },
  117. {    "GO",        FSUBR,    xgo        },
  118. {    "RETURN",    SUBR,    xreturn        },
  119. {    "DO",        FSUBR,    xdo        },
  120. {    "DO*",        FSUBR,    xdostar        },
  121. {    "DOLIST",    FSUBR,    xdolist        },
  122. {    "DOTIMES",    FSUBR,    xdotimes    },
  123. {    "CATCH",    FSUBR,    xcatch        },
  124. {    "THROW",    SUBR,    xthrow        },
  125.  
  126.     /* debugging and error handling functions */
  127. {    "ERROR",    SUBR,    xerror        },
  128. {    "CERROR",    SUBR,    xcerror        },
  129. {    "BREAK",    SUBR,    xbreak        },
  130. {    "CLEAN-UP",    SUBR,    xcleanup    },
  131. {    "CONTINUE",    SUBR,    xcontinue    },
  132. {    "ERRSET",    FSUBR,    xerrset        },
  133. {    "BAKTRACE",    SUBR,    xbaktrace    },
  134. {    "EVALHOOK",    SUBR,    xevalhook    },
  135.  
  136. {    0                    }
  137. };
  138.